The ubiquity of the Internet enables the adoption of new techniques to enable direct distribution of multimedia files and real-time media streaming to end-users in an electronic format. The advantages associated with electronic distribution allow media content providers to establish global distribution systems for digital content. Furthermore, new compression algorithms, designed specifically for multimedia data, dramatically reduce the bandwidth and storage space required for electronic distribution of multimedia data. This, together with the availability of broadband communication, encourages content providers to adopt the Internet as an alternative distribution system complementing the conventional distribution systems (e.g., cable or satellite TV).
Peer-to-peer (P2P) or grid networks enable the distribution of media between users without using server-centric solutions. For example, P2P file sharing systems are well known in the industry and use an efficient technology to deliver media. Examples for such P2P systems are BitTorrent® and Gnutella. However, these systems do not distribute the content in real-time. Rather, a user can download the content (files) and consume it only when the download has completed, i.e., a user cannot consume the content while downloading it.
Recently, new systems for real-time streaming over P2P networks have been developed. Examples for such systems may be found in “A Data Driver Overlay Network for Efficient Live Media Streaming” by Zhang, et al. and in “P2P Media Streaming”, by Hefeeda, et al., both of which are incorporated herein by reference, merely for the useful understanding of the background of the invention. Real-time streaming systems fail to fully utilize the network's resources, as they do not consider the asymmetric nature of the nodes (peers) in a typical Internet Protocol (IP) network. Generally, such systems consider the upload bandwidth of nodes equal to the download bandwidth. This is rarely the case in IP networks, such as asymmetric digital subscriber line (ADSL) and cable-based networks, as in most cases a node's upload bandwidth is half or less of the bandwidth of the download. Another type of real-time P2P network for distributing media can be found in PCT application number PCT/IL2007/000392 entitled “Realtime Media Distribution in a P2P Network,” by Omer Luzzatti, et al. (hereinafter “Luzzatti”) which is assigned to common assignee. Luzzatti discloses a real-time P2P network where nodes in the network can act in the role of ‘amplifiers’, increasing the total available bandwidth in the network and thus improving the quality of the media consumed by the viewers.
Real-time media distribution via P2P networks presents the challenge of optimal allocation of resources to channel-swarms. In order to ensure sufficient (potential) media quality in all swarms, enough individual resources must be assigned to each swarm, but only as little as is required to support the swarms. This challenge is further exacerbated as the numbers of both channel-swarms and consumers grow. The possibility of frequent and sharp changes in the composition of swarms (for example, viewership of TV-like media channels) calls for a highly scalable and responsive solution.
One possible strategy to address this challenge is to use a centralized computing process executed by a network server. The process would determine which resources should be allocated to each channel swarm at any given moment. Such a process would receive information regarding available resources and demands of channels and viewers and determine the best assignment of resources to channel swarms. However, concerns of both scalability and responsiveness associated with supporting large numbers of consumers and channel-swarms in flux, which are discussed in greater detail above, render this strategy unfeasible.